Software Craft

Gründe für das Software Craft Manifesto

Das Software Craft Manifesto wurde notwendig, weil viele in der Softwareentwicklung tätige Personen die Notwendigkeit sahen, über die Prinzipien und Praktiken der agilen Methodik hinauszugehen, um eine Kultur der handwerklichen Qualität zu fördern. Hauptgründe waren:

  1. Mangelnde Qualität: Trotz agiler Methoden wurde oft minderwertige Software produziert, die schwer wartbar war.
  2. Kontinuierliche Verbesserung: Es bestand ein Bedürfnis nach einem ständigen Streben nach Exzellenz und Verbesserung der Fähigkeiten.
  3. Gemeinschaft und Lernen: Der Austausch von Wissen und Erfahrung zwischen Entwicklern sollte gefördert werden.
  4. Berufsstolz: Es wurde betont, dass Softwareentwicklung ein Handwerk ist, auf das man stolz sein sollte, ähnlich wie traditionelle Handwerksberufe.

Das Manifesto for Software Craftsmanship ergänzt das Agile Manifesto mit einem Fokus auf Exzellenz in der Softwareentwicklung:

  1. Nicht nur funktionierende Software, sondern auch gut gestaltete Software
  2. Nicht nur auf Änderungen reagieren, sondern auch stetig Mehrwert liefern
  3. Nicht nur Individuen und Interaktionen, sondern auch eine Gemeinschaft professioneller Entwickler
  4. Nicht nur Kundenkollaboration, sondern auch produktive Partnerschaften

Formate der Software Craft Community

  1. Coding Dojos: Regelmäßige Treffen, bei denen Entwickler zusammenkommen, um Programmieraufgaben in einer kollaborativen Umgebung zu lösen und voneinander zu lernen.
  2. Code Katas: Übungen, bei denen Entwickler wiederholt bestimmte Programmierprobleme lösen, um ihre Fähigkeiten zu verfeinern.
  3. Pair Programming: Zwei Entwickler arbeiten gemeinsam an einem Computer, um Wissen zu teilen und die Codequalität zu verbessern.
  4. Code Retreats: Ganztägige Veranstaltungen, bei denen Entwickler durch intensive Praxis ihre Fähigkeiten verbessern und neue Techniken erlernen.
  5. Tech Talks und Meetups: Präsentationen und Diskussionen zu spezifischen Themen der Softwareentwicklung.
  6. Online Communities und Foren: Plattformen wie Stack Overflow, GitHub und andere, wo Entwickler Fragen stellen, Antworten geben und ihr Wissen teilen können.

Prinzipien der Software Craft Community

  1. Meisterschaft: Streben nach Exzellenz in der Softwareentwicklung.
  2. Kollaboration: Zusammenarbeit und gemeinsames Lernen sind zentral.
  3. Kontinuierliches Lernen: Ständige Weiterbildung und Verbesserung der Fähigkeiten.
  4. Praktische Übung: Regelmäßige, praxisnahe Übung zur Vertiefung und Verfeinerung der Fähigkeiten.
  5. Verantwortung: Verantwortung für die Qualität des Codes und dessen Auswirkungen auf das Team und die Benutzer übernehmen.

Üben als Softwareentwickler:in

Softwareentwickler können ihre Fähigkeiten durch verschiedene Methoden verbessern:

  1. Coding Dojo: Ein Coding Dojo ist eine kollaborative Programmierübung, bei der Entwickler zusammenkommen, um an einer gemeinsamen Aufgabe zu arbeiten. Es fördert das Lernen durch Zusammenarbeit und ermöglicht es den Teilnehmern, voneinander zu lernen. Typischerweise gibt es verschiedene Formate:

    • Randori: Eine Live-Coding-Session, bei der ein Paar von Entwicklern (Driver und Navigator) den Code schreibt, während der Rest des Teams zuschaut und Feedback gibt.
    • Kata: Einzelne oder Paare arbeiten an einer Aufgabe und präsentieren später ihre Lösungen.
  2. Code Katas: Eine Code Kata ist eine kurze, wiederholbare Übung, die ein bestimmtes Problem oder eine Technik behandelt. Sie helfen Entwicklern, ihre Fähigkeiten durch ständige Wiederholung und Verbesserung zu verfeinern. Beispiele sind:

    • FizzBuzz: Eine einfache Übung zur Überprüfung grundlegender Programmierkenntnisse.
    • Roman Numerals: Eine Übung zur Konvertierung von Zahlen in römische Ziffern und umgekehrt.
  3. Pair Programming: Zwei Entwickler arbeiten gemeinsam an einem Computer. Einer schreibt den Code (Driver), während der andere den Code überprüft und navigiert (Navigator). Dies fördert den Wissensaustausch und verbessert die Codequalität.

  4. Refactoring: Regelmäßiges Überarbeiten von Code, um dessen Struktur zu verbessern, ohne die Funktionalität zu ändern. Dies hilft, technischen Schulden vorzubeugen und die Wartbarkeit zu erhöhen.

  5. Test-Driven Development (TDD): Eine Praxis, bei der Tests geschrieben werden, bevor der eigentliche Code implementiert wird. Dies fördert die Erstellung von zuverlässigem und gut getestetem Code.

Zusammenfassung

Das Software Craft Manifesto und die zugehörigen Praktiken und Prinzipien betonen die Bedeutung von handwerklicher Qualität, kontinuierlicher Verbesserung und kollaborativem Lernen in der Softwareentwicklung. Durch Formate wie Coding Dojos, Code Katas und Pair Programming können Entwickler ihre Fähigkeiten kontinuierlich verbessern und eine Kultur der Exzellenz fördern.